package prac;

import java.util.*;
import java.util.stream.Collectors;

public class Test {
    public static void main0(String[] args) {

        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int result=0;
            int sy=in.nextInt();
            while(true){
                int i=sy/3;
                result=result+i;
                int j=sy%3;
                sy=i+j;
                if(sy<2){break;}
                if(sy==2){result++;break;}

            }

            System.out.println(result);
        }
    }



    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        Set<Integer> sets=new HashSet<>();
        Integer num=in.nextInt();
        for (;num>0;num--) {
            int a = in.nextInt();
            sets.add(a);
        }
            List<Integer> result= sets.stream().sorted((o1, o2)-> o1-o2).collect(Collectors.toList());
           for(Integer i:result){
            System.out.println(i);
           }

    }

    public static void main2(String[] args) {
        Scanner in = new Scanner(System.in);
        String sc=in.next();
        String sc1= sc.substring(2,sc.length());
        String[] strings=sc1.split("");
        Integer result=0;
        Integer len=sc1.length();
        for(int i=0;i<len;i++){
            result=result+ get(strings[i])*(int)Math.pow(16, len-i-1);
        }
        System.out.println(result);
    }

    public static void main3(String[] args) {
        Scanner in = new Scanner(System.in);
        StringBuffer result=new StringBuffer();
        while (in.hasNext()) { // 注意 while 处理多个 case
            String sc=in.next();
            System.out.println(sc);
        }

    }
    private static Integer get(String b){
    switch (b){
        case "A": return 10;
        case "B": return 11;
        case "C": return 12;
        case "D": return 13;
        case "E": return 14;
        case "F": return 15;
        default:return Integer.valueOf(b);
    }}

    /**
     * 某个充电站，可提供 n 个充电设备，每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和，均构成功率集合 P 的 1 个元素。功率集合 P 的最优元素，表示最接近充电站最大输出功率 p_max 的元素。
     * 输入为 3 行：
     * 第 1 行为充电设备个数 n。
     * 第 2 行为每个充电设备的输出功率。
     * 第 3 行为充电站最大输出功率 p_max。
     * 输出为功率集合 P 的最优元素，需满足充电设备个数 n>0，最优元素必须小于或等于充电站最大输出功率 p_max。
     * @param args
     */

    public static void main11(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取充电设备个数
        int n = scanner.nextInt();
        // 读取每个充电设备的输出功率
        List<Integer> o1=new ArrayList();
        for (int i = 0; i < n; i++) {
            o1.add(scanner.nextInt()) ;
        }
        int pMax = scanner.nextInt();
        scanner.close();


        Set<Integer> result=new HashSet<>();
        result.add(0);
      for(int o:o1){
          Set<Integer> result1=new HashSet<>();
        for(Integer i:result){
            if(i+o>pMax){
                continue;
            }if(i+o==pMax){
                System.out.println(pMax);
                return;
            }
            result1.add(i+o);
        }
          result.addAll(result1);
     }
        Optional<Integer>  s=  result.stream().max(Integer::compare);
        System.out.println(s.get());
    }



}






